<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/dqblk_xfs.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/dqblk_xfs.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc.  All Rights Reserved.</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * This program is free software; you can redistribute it and/or</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * modify it under the terms of the GNU Lesser General Public License</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * as published by the Free Software Foundation.</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * This program is distributed in the hope that it will be useful,</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * GNU Lesser General Public License for more details.</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> *</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * You should have received a copy of the GNU Lesset General Public License</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * along with this program; if not, write to the Free Software Foundation,</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> */</span>
<a name="17" /><span class="True">      17:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0RRQkxLX1hGU19IXzA_"><span class="b">_LINUX_DQBLK_XFS_H</span></a>
<a name="18" /><span class="True">      18:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0RRQkxLX1hGU19IXzA_"><span class="b">_LINUX_DQBLK_XFS_H</span></a>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="21" /><span class="True">      21:</span> 
<a name="22" /><span class="True">      22:</span> <span class="k">/*</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM).</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> */</span>
<a name="25" /><span class="True">      25:</span> 
<a name="26" /><span class="True">      26:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="d">&apos;X&apos;</span><span class="f">&lt;&lt;</span><span class="c">8</span><span class="f">)</span><span class="f">+</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span>    <span class="k">/* note: forms first QCMD argument */</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX0NPTU1BTkRfMA__"><span class="b">XQM_COMMAND</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">0xff</span><span class="f">&lt;&lt;</span><span class="c">8</span><span class="f">)</span><span class="f">)</span> <span class="f">==</span> <span class="f">(</span><span class="d">&apos;X&apos;</span><span class="f">&lt;&lt;</span><span class="c">8</span><span class="f">)</span><span class="f">)</span>    <span class="k">/* test if for XFS */</span>
<a name="28" /><span class="True">      28:</span> 
<a name="29" /><span class="True">      29:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX1VTUlFVT1RBXzA_"><span class="b">XQM_USRQUOTA</span></a>    <span class="c">0</span>    <span class="k">/* system call user quota type */</span>
<a name="30" /><span class="True">      30:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX0dSUFFVT1RBXzA_"><span class="b">XQM_GRPQUOTA</span></a>    <span class="c">1</span>    <span class="k">/* system call group quota type */</span>
<a name="31" /><span class="True">      31:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX1BSSlFVT1RBXzA_"><span class="b">XQM_PRJQUOTA</span></a>    <span class="c">2</span>    <span class="k">/* system call project quota type */</span>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WFFNX01BWFFVT1RBU18w"><span class="b">XQM_MAXQUOTAS</span></a>    <span class="c">3</span>
<a name="33" /><span class="True">      33:</span> 
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YUVVPVEFPTl8w"><span class="b">Q_XQUOTAON</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">1</span><span class="f">)</span>    <span class="k">/* enable accounting/enforcement */</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YUVVPVEFPRkZfMA__"><span class="b">Q_XQUOTAOFF</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">2</span><span class="f">)</span>    <span class="k">/* disable accounting/enforcement */</span>
<a name="36" /><span class="True">      36:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YR0VUUVVPVEFfMA__"><span class="b">Q_XGETQUOTA</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">3</span><span class="f">)</span>    <span class="k">/* get disk limits and usage */</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YU0VUUUxJTV8w"><span class="b">Q_XSETQLIM</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">4</span><span class="f">)</span>    <span class="k">/* set disk limits */</span>
<a name="38" /><span class="True">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YR0VUUVNUQVRfMA__"><span class="b">Q_XGETQSTAT</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">5</span><span class="f">)</span>    <span class="k">/* get quota subsystem status */</span>
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YUVVPVEFSTV8w"><span class="b">Q_XQUOTARM</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">6</span><span class="f">)</span>    <span class="k">/* free disk space used by dquots */</span>
<a name="40" /><span class="True">      40:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YUVVPVEFTWU5DXzA_"><span class="b">Q_XQUOTASYNC</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">7</span><span class="f">)</span>    <span class="k">/* delalloc flush, updates dquots */</span>
<a name="41" /><span class="True">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UV9YR0VUUVNUQVRWXzA_"><span class="b">Q_XGETQSTATV</span></a>    <a href="cpu.c_macros_noref.html#_WFFNX0NNRF8w"><span class="b">XQM_CMD</span></a><span class="f">(</span><span class="c">8</span><span class="f">)</span>    <span class="k">/* newer version of get quota */</span>
<a name="42" /><span class="True">      42:</span> 
<a name="43" /><span class="True">      43:</span> <span class="k">/*</span>
<a name="44" /><span class="True">      44:</span> <span class="k"> * fs_disk_quota structure:</span>
<a name="45" /><span class="True">      45:</span> <span class="k"> *</span>
<a name="46" /><span class="True">      46:</span> <span class="k"> * This contains the current quota information regarding a user/proj/group.</span>
<a name="47" /><span class="True">      47:</span> <span class="k"> * It is 64-bit aligned, and all the blk units are in BBs (Basic Blocks) of</span>
<a name="48" /><span class="True">      48:</span> <span class="k"> * 512 bytes.</span>
<a name="49" /><span class="True">      49:</span> <span class="k"> */</span>
<a name="50" /><span class="True">      50:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFVT1RfVkVSU0lPTl8w"><span class="b">FS_DQUOT_VERSION</span></a>    <span class="c">1</span>    <span class="k">/* fs_disk_quota.d_version */</span>
<a name="51" /><span class="True">      51:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">fs_disk_quota</span> <span class="f">{</span>
<a name="52" /><span class="True">      52:</span>     <span class="b">__s8</span>        <span class="b">d_version</span><span class="f">;</span>    <span class="k">/* version of this structure */</span>
<a name="53" /><span class="True">      53:</span>     <span class="b">__s8</span>        <span class="b">d_flags</span><span class="f">;</span>    <span class="k">/* FS_{USER,PROJ,GROUP}_QUOTA */</span>
<a name="54" /><span class="True">      54:</span>     <span class="b">__u16</span>        <span class="b">d_fieldmask</span><span class="f">;</span>    <span class="k">/* field specifier */</span>
<a name="55" /><span class="True">      55:</span>     <span class="b">__u32</span>        <span class="b">d_id</span><span class="f">;</span>        <span class="k">/* user, project, or group ID */</span>
<a name="56" /><span class="True">      56:</span>     <span class="b">__u64</span>        <span class="b">d_blk_hardlimit</span><span class="f">;</span><span class="k">/* absolute limit on disk blks */</span>
<a name="57" /><span class="True">      57:</span>     <span class="b">__u64</span>        <span class="b">d_blk_softlimit</span><span class="f">;</span><span class="k">/* preferred limit on disk blks */</span>
<a name="58" /><span class="True">      58:</span>     <span class="b">__u64</span>        <span class="b">d_ino_hardlimit</span><span class="f">;</span><span class="k">/* maximum # allocated inodes */</span>
<a name="59" /><span class="True">      59:</span>     <span class="b">__u64</span>        <span class="b">d_ino_softlimit</span><span class="f">;</span><span class="k">/* preferred inode limit */</span>
<a name="60" /><span class="True">      60:</span>     <span class="b">__u64</span>        <span class="b">d_bcount</span><span class="f">;</span>    <span class="k">/* # disk blocks owned by the user */</span>
<a name="61" /><span class="True">      61:</span>     <span class="b">__u64</span>        <span class="b">d_icount</span><span class="f">;</span>    <span class="k">/* # inodes owned by the user */</span>
<a name="62" /><span class="True">      62:</span>     <span class="b">__s32</span>        <span class="b">d_itimer</span><span class="f">;</span>    <span class="k">/* zero if within inode limits */</span>
<a name="63" /><span class="True">      63:</span>                     <span class="k">/* if not, we refuse service */</span>
<a name="64" /><span class="True">      64:</span>     <span class="b">__s32</span>        <span class="b">d_btimer</span><span class="f">;</span>    <span class="k">/* similar to above; for disk blocks */</span>
<a name="65" /><span class="True">      65:</span>     <span class="b">__u16</span>          <span class="b">d_iwarns</span><span class="f">;</span>       <span class="k">/* # warnings issued wrt num inodes */</span>
<a name="66" /><span class="True">      66:</span>     <span class="b">__u16</span>          <span class="b">d_bwarns</span><span class="f">;</span>       <span class="k">/* # warnings issued wrt disk blocks */</span>
<a name="67" /><span class="True">      67:</span>     <span class="b">__s32</span>        <span class="b">d_padding2</span><span class="f">;</span>    <span class="k">/* padding2 - for future use */</span>
<a name="68" /><span class="True">      68:</span>     <span class="b">__u64</span>        <span class="b">d_rtb_hardlimit</span><span class="f">;</span><span class="k">/* absolute limit on realtime blks */</span>
<a name="69" /><span class="True">      69:</span>     <span class="b">__u64</span>        <span class="b">d_rtb_softlimit</span><span class="f">;</span><span class="k">/* preferred limit on RT disk blks */</span>
<a name="70" /><span class="True">      70:</span>     <span class="b">__u64</span>        <span class="b">d_rtbcount</span><span class="f">;</span>    <span class="k">/* # realtime blocks owned */</span>
<a name="71" /><span class="True">      71:</span>     <span class="b">__s32</span>        <span class="b">d_rtbtimer</span><span class="f">;</span>    <span class="k">/* similar to above; for RT disk blks */</span>
<a name="72" /><span class="True">      72:</span>     <span class="b">__u16</span>          <span class="b">d_rtbwarns</span><span class="f">;</span>     <span class="k">/* # warnings issued wrt RT disk blks */</span>
<a name="73" /><span class="True">      73:</span>     <span class="b">__s16</span>        <span class="b">d_padding3</span><span class="f">;</span>    <span class="k">/* padding3 - for future use */</span>    
<a name="74" /><span class="True">      74:</span>     <span class="m">char</span>        <span class="b">d_padding4</span><span class="f">[</span><span class="c">8</span><span class="f">]</span><span class="f">;</span>    <span class="k">/* yet more padding */</span>
<a name="75" /><span class="True">      75:</span> <span class="f">}</span> <span class="b">fs_disk_quota_t</span><span class="f">;</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="True">      77:</span> <span class="k">/*</span>
<a name="78" /><span class="True">      78:</span> <span class="k"> * These fields are sent to Q_XSETQLIM to specify fields that need to change.</span>
<a name="79" /><span class="True">      79:</span> <span class="k"> */</span>
<a name="80" /><span class="True">      80:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSVNPRlRfMA__"><span class="b">FS_DQ_ISOFT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">0</span><span class="f">)</span>
<a name="81" /><span class="True">      81:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSUhBUkRfMA__"><span class="b">FS_DQ_IHARD</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">1</span><span class="f">)</span>
<a name="82" /><span class="True">      82:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQlNPRlRfMA__"><span class="b">FS_DQ_BSOFT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">2</span><span class="f">)</span>
<a name="83" /><span class="True">      83:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQkhBUkRfMA__"><span class="b">FS_DQ_BHARD</span></a>     <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">3</span><span class="f">)</span>
<a name="84" /><span class="True">      84:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCU09GVF8w"><span class="b">FS_DQ_RTBSOFT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">4</span><span class="f">)</span>
<a name="85" /><span class="True">      85:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCSEFSRF8w"><span class="b">FS_DQ_RTBHARD</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">5</span><span class="f">)</span>
<a name="86" /><span class="True">      86:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfTElNSVRfTUFTS18w"><span class="b">FS_DQ_LIMIT_MASK</span></a>    <span class="f">(</span><a href="cpu.c_macros_noref.html#_RlNfRFFfSVNPRlRfMA__"><span class="b">FS_DQ_ISOFT</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSUhBUkRfMA__"><span class="b">FS_DQ_IHARD</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQlNPRlRfMA__"><span class="b">FS_DQ_BSOFT</span></a> <span class="f">|</span> \
<a name="87" /><span class="True">      87:</span>                  <a href="cpu.c_macros_noref.html#_RlNfRFFfQkhBUkRfMA__"><span class="b">FS_DQ_BHARD</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCU09GVF8w"><span class="b">FS_DQ_RTBSOFT</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCSEFSRF8w"><span class="b">FS_DQ_RTBHARD</span></a><span class="f">)</span>
<a name="88" /><span class="True">      88:</span> <span class="k">/*</span>
<a name="89" /><span class="True">      89:</span> <span class="k"> * These timers can only be set in super user&apos;s dquot. For others, timers are</span>
<a name="90" /><span class="True">      90:</span> <span class="k"> * automatically started and stopped. Superusers timer values set the limits</span>
<a name="91" /><span class="True">      91:</span> <span class="k"> * for the rest.  In case these values are zero, the DQ_{F,B}TIMELIMIT values</span>
<a name="92" /><span class="True">      92:</span> <span class="k"> * defined below are used. </span>
<a name="93" /><span class="True">      93:</span> <span class="k"> * These values also apply only to the d_fieldmask field for Q_XSETQLIM.</span>
<a name="94" /><span class="True">      94:</span> <span class="k"> */</span>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQlRJTUVSXzA_"><span class="b">FS_DQ_BTIMER</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">6</span><span class="f">)</span>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSVRJTUVSXzA_"><span class="b">FS_DQ_ITIMER</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">7</span><span class="f">)</span>
<a name="97" /><span class="True">      97:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCVElNRVJfMA__"><span class="b">FS_DQ_RTBTIMER</span></a>     <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">8</span><span class="f">)</span>
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfVElNRVJfTUFTS18w"><span class="b">FS_DQ_TIMER_MASK</span></a>    <span class="f">(</span><a href="cpu.c_macros_noref.html#_RlNfRFFfQlRJTUVSXzA_"><span class="b">FS_DQ_BTIMER</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSVRJTUVSXzA_"><span class="b">FS_DQ_ITIMER</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCVElNRVJfMA__"><span class="b">FS_DQ_RTBTIMER</span></a><span class="f">)</span>
<a name="99" /><span class="True">      99:</span> 
<a name="100" /><span class="True">     100:</span> <span class="k">/*</span>
<a name="101" /><span class="True">     101:</span> <span class="k"> * Warning counts are set in both super user&apos;s dquot and others. For others,</span>
<a name="102" /><span class="True">     102:</span> <span class="k"> * warnings are set/cleared by the administrators (or automatically by going</span>
<a name="103" /><span class="True">     103:</span> <span class="k"> * below the soft limit).  Superusers warning values set the warning limits</span>
<a name="104" /><span class="True">     104:</span> <span class="k"> * for the rest.  In case these values are zero, the DQ_{F,B}WARNLIMIT values</span>
<a name="105" /><span class="True">     105:</span> <span class="k"> * defined below are used. </span>
<a name="106" /><span class="True">     106:</span> <span class="k"> * These values also apply only to the d_fieldmask field for Q_XSETQLIM.</span>
<a name="107" /><span class="True">     107:</span> <span class="k"> */</span>
<a name="108" /><span class="True">     108:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQldBUk5TXzA_"><span class="b">FS_DQ_BWARNS</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">9</span><span class="f">)</span>
<a name="109" /><span class="True">     109:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSVdBUk5TXzA_"><span class="b">FS_DQ_IWARNS</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">10</span><span class="f">)</span>
<a name="110" /><span class="True">     110:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCV0FSTlNfMA__"><span class="b">FS_DQ_RTBWARNS</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">11</span><span class="f">)</span>
<a name="111" /><span class="True">     111:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfV0FSTlNfTUFTS18w"><span class="b">FS_DQ_WARNS_MASK</span></a>    <span class="f">(</span><a href="cpu.c_macros_noref.html#_RlNfRFFfQldBUk5TXzA_"><span class="b">FS_DQ_BWARNS</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSVdBUk5TXzA_"><span class="b">FS_DQ_IWARNS</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCV0FSTlNfMA__"><span class="b">FS_DQ_RTBWARNS</span></a><span class="f">)</span>
<a name="112" /><span class="True">     112:</span> 
<a name="113" /><span class="True">     113:</span> <span class="k">/*</span>
<a name="114" /><span class="True">     114:</span> <span class="k"> * Accounting values.  These can only be set for filesystem with</span>
<a name="115" /><span class="True">     115:</span> <span class="k"> * non-transactional quotas that require quotacheck(8) in userspace.</span>
<a name="116" /><span class="True">     116:</span> <span class="k"> */</span>
<a name="117" /><span class="True">     117:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQkNPVU5UXzA_"><span class="b">FS_DQ_BCOUNT</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">12</span><span class="f">)</span>
<a name="118" /><span class="True">     118:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSUNPVU5UXzA_"><span class="b">FS_DQ_ICOUNT</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">13</span><span class="f">)</span>
<a name="119" /><span class="True">     119:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCQ09VTlRfMA__"><span class="b">FS_DQ_RTBCOUNT</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">14</span><span class="f">)</span>
<a name="120" /><span class="True">     120:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfQUNDVF9NQVNLXzA_"><span class="b">FS_DQ_ACCT_MASK</span></a>        <span class="f">(</span><a href="cpu.c_macros_noref.html#_RlNfRFFfQkNPVU5UXzA_"><span class="b">FS_DQ_BCOUNT</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfSUNPVU5UXzA_"><span class="b">FS_DQ_ICOUNT</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RlNfRFFfUlRCQ09VTlRfMA__"><span class="b">FS_DQ_RTBCOUNT</span></a><span class="f">)</span>
<a name="121" /><span class="True">     121:</span> 
<a name="122" /><span class="True">     122:</span> <span class="k">/*</span>
<a name="123" /><span class="True">     123:</span> <span class="k"> * Various flags related to quotactl(2).</span>
<a name="124" /><span class="True">     124:</span> <span class="k"> */</span>
<a name="125" /><span class="True">     125:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfVURRX0FDQ1RfMA__"><span class="b">FS_QUOTA_UDQ_ACCT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">0</span><span class="f">)</span>  <span class="k">/* user quota accounting */</span>
<a name="126" /><span class="True">     126:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfVURRX0VORkRfMA__"><span class="b">FS_QUOTA_UDQ_ENFD</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">1</span><span class="f">)</span>  <span class="k">/* user quota limits enforcement */</span>
<a name="127" /><span class="True">     127:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfR0RRX0FDQ1RfMA__"><span class="b">FS_QUOTA_GDQ_ACCT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">2</span><span class="f">)</span>  <span class="k">/* group quota accounting */</span>
<a name="128" /><span class="True">     128:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfR0RRX0VORkRfMA__"><span class="b">FS_QUOTA_GDQ_ENFD</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">3</span><span class="f">)</span>  <span class="k">/* group quota limits enforcement */</span>
<a name="129" /><span class="True">     129:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfUERRX0FDQ1RfMA__"><span class="b">FS_QUOTA_PDQ_ACCT</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">4</span><span class="f">)</span>  <span class="k">/* project quota accounting */</span>
<a name="130" /><span class="True">     130:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVVPVEFfUERRX0VORkRfMA__"><span class="b">FS_QUOTA_PDQ_ENFD</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">5</span><span class="f">)</span>  <span class="k">/* project quota limits enforcement */</span>
<a name="131" /><span class="True">     131:</span> 
<a name="132" /><span class="True">     132:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfVVNFUl9RVU9UQV8w"><span class="b">FS_USER_QUOTA</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">0</span><span class="f">)</span>    <span class="k">/* user quota type */</span>
<a name="133" /><span class="True">     133:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUFJPSl9RVU9UQV8w"><span class="b">FS_PROJ_QUOTA</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">1</span><span class="f">)</span>    <span class="k">/* project quota type */</span>
<a name="134" /><span class="True">     134:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfR1JPVVBfUVVPVEFfMA__"><span class="b">FS_GROUP_QUOTA</span></a>        <span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="c">2</span><span class="f">)</span>    <span class="k">/* group quota type */</span>
<a name="135" /><span class="True">     135:</span> 
<a name="136" /><span class="True">     136:</span> <span class="k">/*</span>
<a name="137" /><span class="True">     137:</span> <span class="k"> * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system.</span>
<a name="138" /><span class="True">     138:</span> <span class="k"> * Provides a centralized way to get meta information about the quota subsystem.</span>
<a name="139" /><span class="True">     139:</span> <span class="k"> * eg. space taken up for user and group quotas, number of dquots currently</span>
<a name="140" /><span class="True">     140:</span> <span class="k"> * incore.</span>
<a name="141" /><span class="True">     141:</span> <span class="k"> */</span>
<a name="142" /><span class="True">     142:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVNUQVRfVkVSU0lPTl8w"><span class="b">FS_QSTAT_VERSION</span></a>    <span class="c">1</span>    <span class="k">/* fs_quota_stat.qs_version */</span>
<a name="143" /><span class="True">     143:</span> 
<a name="144" /><span class="True">     144:</span> <span class="k">/*</span>
<a name="145" /><span class="True">     145:</span> <span class="k"> * Some basic information about &apos;quota files&apos;.</span>
<a name="146" /><span class="True">     146:</span> <span class="k"> */</span>
<a name="147" /><span class="True">     147:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">fs_qfilestat</span> <span class="f">{</span>
<a name="148" /><span class="True">     148:</span>     <span class="b">__u64</span>        <span class="b">qfs_ino</span><span class="f">;</span>    <span class="k">/* inode number */</span>
<a name="149" /><span class="True">     149:</span>     <span class="b">__u64</span>        <span class="b">qfs_nblks</span><span class="f">;</span>    <span class="k">/* number of BBs 512-byte-blks */</span>
<a name="150" /><span class="True">     150:</span>     <span class="b">__u32</span>        <span class="b">qfs_nextents</span><span class="f">;</span>    <span class="k">/* number of extents */</span>
<a name="151" /><span class="True">     151:</span> <span class="f">}</span> <span class="b">fs_qfilestat_t</span><span class="f">;</span>
<a name="152" /><span class="True">     152:</span> 
<a name="153" /><span class="True">     153:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">fs_quota_stat</span> <span class="f">{</span>
<a name="154" /><span class="True">     154:</span>     <span class="b">__s8</span>        <span class="b">qs_version</span><span class="f">;</span>    <span class="k">/* version number for future changes */</span>
<a name="155" /><span class="True">     155:</span>     <span class="b">__u16</span>        <span class="b">qs_flags</span><span class="f">;</span>    <span class="k">/* FS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */</span>
<a name="156" /><span class="True">     156:</span>     <span class="b">__s8</span>        <span class="b">qs_pad</span><span class="f">;</span>        <span class="k">/* unused */</span>
<a name="157" /><span class="True">     157:</span>     <span class="b">fs_qfilestat_t</span>    <span class="b">qs_uquota</span><span class="f">;</span>    <span class="k">/* user quota storage information */</span>
<a name="158" /><span class="True">     158:</span>     <span class="b">fs_qfilestat_t</span>    <span class="b">qs_gquota</span><span class="f">;</span>    <span class="k">/* group quota storage information */</span>
<a name="159" /><span class="True">     159:</span>     <span class="b">__u32</span>        <span class="b">qs_incoredqs</span><span class="f">;</span>    <span class="k">/* number of dquots incore */</span>
<a name="160" /><span class="True">     160:</span>     <span class="b">__s32</span>        <span class="b">qs_btimelimit</span><span class="f">;</span>  <span class="k">/* limit for blks timer */</span>    
<a name="161" /><span class="True">     161:</span>     <span class="b">__s32</span>        <span class="b">qs_itimelimit</span><span class="f">;</span>  <span class="k">/* limit for inodes timer */</span>    
<a name="162" /><span class="True">     162:</span>     <span class="b">__s32</span>        <span class="b">qs_rtbtimelimit</span><span class="f">;</span><span class="k">/* limit for rt blks timer */</span>    
<a name="163" /><span class="True">     163:</span>     <span class="b">__u16</span>        <span class="b">qs_bwarnlimit</span><span class="f">;</span>    <span class="k">/* limit for num warnings */</span>
<a name="164" /><span class="True">     164:</span>     <span class="b">__u16</span>        <span class="b">qs_iwarnlimit</span><span class="f">;</span>    <span class="k">/* limit for num warnings */</span>
<a name="165" /><span class="True">     165:</span> <span class="f">}</span> <span class="b">fs_quota_stat_t</span><span class="f">;</span>
<a name="166" /><span class="True">     166:</span> 
<a name="167" /><span class="True">     167:</span> <span class="k">/*</span>
<a name="168" /><span class="True">     168:</span> <span class="k"> * fs_quota_statv is used by Q_XGETQSTATV for a given file system. It provides</span>
<a name="169" /><span class="True">     169:</span> <span class="k"> * a centralized way to get meta information about the quota subsystem. eg.</span>
<a name="170" /><span class="True">     170:</span> <span class="k"> * space taken up for user, group, and project quotas, number of dquots</span>
<a name="171" /><span class="True">     171:</span> <span class="k"> * currently incore.</span>
<a name="172" /><span class="True">     172:</span> <span class="k"> *</span>
<a name="173" /><span class="True">     173:</span> <span class="k"> * This version has proper versioning support with appropriate padding for</span>
<a name="174" /><span class="True">     174:</span> <span class="k"> * future expansions, and ability to expand for future without creating any</span>
<a name="175" /><span class="True">     175:</span> <span class="k"> * backward compatibility issues.</span>
<a name="176" /><span class="True">     176:</span> <span class="k"> *</span>
<a name="177" /><span class="True">     177:</span> <span class="k"> * Q_XGETQSTATV uses the passed in value of the requested version via</span>
<a name="178" /><span class="True">     178:</span> <span class="k"> * fs_quota_statv.qs_version to determine the return data layout of</span>
<a name="179" /><span class="True">     179:</span> <span class="k"> * fs_quota_statv.  The kernel will fill the data fields relevant to that</span>
<a name="180" /><span class="True">     180:</span> <span class="k"> * version.</span>
<a name="181" /><span class="True">     181:</span> <span class="k"> *</span>
<a name="182" /><span class="True">     182:</span> <span class="k"> * If kernel does not support user space caller specified version, EINVAL will</span>
<a name="183" /><span class="True">     183:</span> <span class="k"> * be returned. User space caller can then reduce the version number and retry</span>
<a name="184" /><span class="True">     184:</span> <span class="k"> * the same command.</span>
<a name="185" /><span class="True">     185:</span> <span class="k"> */</span>
<a name="186" /><span class="True">     186:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RlNfUVNUQVRWX1ZFUlNJT04xXzA_"><span class="b">FS_QSTATV_VERSION1</span></a>    <span class="c">1</span>    <span class="k">/* fs_quota_statv.qs_version */</span>
<a name="187" /><span class="True">     187:</span> <span class="k">/*</span>
<a name="188" /><span class="True">     188:</span> <span class="k"> * Some basic information about &apos;quota files&apos; for Q_XGETQSTATV command</span>
<a name="189" /><span class="True">     189:</span> <span class="k"> */</span>
<a name="190" /><span class="True">     190:</span> <span class="m">struct</span> <span class="b">fs_qfilestatv</span> <span class="f">{</span>
<a name="191" /><span class="True">     191:</span>     <span class="b">__u64</span>        <span class="b">qfs_ino</span><span class="f">;</span>    <span class="k">/* inode number */</span>
<a name="192" /><span class="True">     192:</span>     <span class="b">__u64</span>        <span class="b">qfs_nblks</span><span class="f">;</span>    <span class="k">/* number of BBs 512-byte-blks */</span>
<a name="193" /><span class="True">     193:</span>     <span class="b">__u32</span>        <span class="b">qfs_nextents</span><span class="f">;</span>    <span class="k">/* number of extents */</span>
<a name="194" /><span class="True">     194:</span>     <span class="b">__u32</span>        <span class="b">qfs_pad</span><span class="f">;</span>    <span class="k">/* pad for 8-byte alignment */</span>
<a name="195" /><span class="True">     195:</span> <span class="f">}</span><span class="f">;</span>
<a name="196" /><span class="True">     196:</span> 
<a name="197" /><span class="True">     197:</span> <span class="m">struct</span> <span class="b">fs_quota_statv</span> <span class="f">{</span>
<a name="198" /><span class="True">     198:</span>     <span class="b">__s8</span>            <span class="b">qs_version</span><span class="f">;</span>    <span class="k">/* version for future changes */</span>
<a name="199" /><span class="True">     199:</span>     <span class="b">__u8</span>            <span class="b">qs_pad1</span><span class="f">;</span>    <span class="k">/* pad for 16bit alignment */</span>
<a name="200" /><span class="True">     200:</span>     <span class="b">__u16</span>            <span class="b">qs_flags</span><span class="f">;</span>    <span class="k">/* FS_QUOTA_.* flags */</span>
<a name="201" /><span class="True">     201:</span>     <span class="b">__u32</span>            <span class="b">qs_incoredqs</span><span class="f">;</span>    <span class="k">/* number of dquots incore */</span>
<a name="202" /><span class="True">     202:</span>     <span class="m">struct</span> <span class="b">fs_qfilestatv</span>    <span class="b">qs_uquota</span><span class="f">;</span>    <span class="k">/* user quota information */</span>
<a name="203" /><span class="True">     203:</span>     <span class="m">struct</span> <span class="b">fs_qfilestatv</span>    <span class="b">qs_gquota</span><span class="f">;</span>    <span class="k">/* group quota information */</span>
<a name="204" /><span class="True">     204:</span>     <span class="m">struct</span> <span class="b">fs_qfilestatv</span>    <span class="b">qs_pquota</span><span class="f">;</span>    <span class="k">/* project quota information */</span>
<a name="205" /><span class="True">     205:</span>     <span class="b">__s32</span>            <span class="b">qs_btimelimit</span><span class="f">;</span>  <span class="k">/* limit for blks timer */</span>
<a name="206" /><span class="True">     206:</span>     <span class="b">__s32</span>            <span class="b">qs_itimelimit</span><span class="f">;</span>  <span class="k">/* limit for inodes timer */</span>
<a name="207" /><span class="True">     207:</span>     <span class="b">__s32</span>            <span class="b">qs_rtbtimelimit</span><span class="f">;</span><span class="k">/* limit for rt blks timer */</span>
<a name="208" /><span class="True">     208:</span>     <span class="b">__u16</span>            <span class="b">qs_bwarnlimit</span><span class="f">;</span>    <span class="k">/* limit for num warnings */</span>
<a name="209" /><span class="True">     209:</span>     <span class="b">__u16</span>            <span class="b">qs_iwarnlimit</span><span class="f">;</span>    <span class="k">/* limit for num warnings */</span>
<a name="210" /><span class="True">     210:</span>     <span class="b">__u64</span>            <span class="b">qs_pad2</span><span class="f">[</span><span class="c">8</span><span class="f">]</span><span class="f">;</span>    <span class="k">/* for future proofing */</span>
<a name="211" /><span class="True">     211:</span> <span class="f">}</span><span class="f">;</span>
<a name="212" /><span class="True">     212:</span> 
<a name="213" /><span class="True">     213:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* _LINUX_DQBLK_XFS_H */</span>
<a name="214" /><span class="True">     214:</span> </pre>
  </body>
</html>
